package com.lixx.usercenter.utils;

import com.lixx.usercenter.common.BaseResponse;
import com.lixx.usercenter.common.ErrorCode;

/**
 * 类名称：ResultUtils
 * 描述：结果实用程序
 *
 * @author: Lixx
 * 创建时间: 2025/08/09
 */

public class ResultUtils {

    /**
     * 成功
     *
     * @param data <T> 表示该方法可以接受任意类型 T 作为参数
     * @return {@link BaseResponse }<{@link T }> 返回一个 BaseResponse 类型的对象，该对象的类型参数为 T
     * @author Lixx
     * @date 2025/08/09
     */

    public static <T> BaseResponse<T> success(T data) {
        return new BaseResponse<>(20000, data, "响应成功");
    }

    public static BaseResponse error(ErrorCode errorCode) {
        return new BaseResponse<>(errorCode);
    }

    public static BaseResponse error(int code, String message, String description) {
        return new BaseResponse<>(code, null, message, description);
    }

    public static  BaseResponse error(ErrorCode errorCode, String message,String description) {
        return new BaseResponse<>(errorCode.getCode(), null, message, description);
    }

    public static BaseResponse error(ErrorCode errorCode,String description) {
        return new BaseResponse<>(errorCode.getCode(), null, errorCode.getMessage(), description);
    }
}
